#ifndef __func_H__
#define __func_H__

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
#include <sys/types.h>
#include <dirent.h>
#include <string.h>
#include <pwd.h>
#include <grp.h>
#include <time.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/select.h>
#include <sys/time.h>
#include <sys/wait.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <signal.h>
#include <pthread.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <sys/epoll.h>
#include <errno.h>
#include <sys/uio.h>
#include <mysql/mysql.h>

#define ARGS_CHECK(argc, n) { \
    if(argc != n) { \
        fprintf(stderr,"args error : expected %d arguments\n", n); \
        exit(1); \
    } \
}

#define ERROR_CHECK(retval, val, msg) { \
    if(retval == val) { \
        perror(msg); \
        exit(1); \
    } \
}

#define THREAD_ERROR_CHECK(retval, msg) { \
    if(retval != 0) { \
        printf("%s : %s\n", msg, strerror(retval)); \
    } \
} \


#endif
